package horncomb.bpm.process.core;

import horncomb.bpm.process.core.entity.ProcessInstanceEntity;

/**
 * 流程实例
 * @author Daniel
 */
public interface ProcessInstance extends StateTransitor {
	public ProcessInstanceEntity getEntity();

	public String getId();

	public String getName();

	/**
	 * 获取本流程实例的流程定义
	 * @return
	 */
	public ProcessDefinition getProcessDefinition();

	public StateDefinition getState();

	public Token getToken();

	/**
	 * 启动本流程
	 * @param contextModel
	 *            上下文数据模型
	 */
	public void start(Object contextModel);
}
